/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.compra.controlador;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.compra.bean.Departamento;
import sv.com.intesal.compra.sql.SQLDepartamento;
import sv.com.intesal.conexion.cConexion;

/**
 *
 * @author JM
 */
public class DepartamentoControlador {

    public void mantenimientoDepartamento(Departamento departamento) throws Exception {
        try {
            Connection c = cConexion.conectar();
            PreparedStatement pstm = null;

            if (departamento.getId_d() == 0) {
                pstm = c.prepareStatement(SQLDepartamento.INSERTAR);
            } else {
                pstm = c.prepareStatement(SQLDepartamento.MODIFICAR);
                pstm.setInt(3, departamento.getId_d());
            }
            pstm.setInt(1, departamento.getId_p());
            pstm.setString(2, departamento.getNombre_d());
            pstm.executeUpdate();

            pstm.close();
            c.close();

            Mensaje m = new Mensaje();
            if (departamento.getId_d() == 0) {
                m.messageInfo(m.getIinformation());
            } else {
                m.messageInfo(m.getImodificada());
            }
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<Departamento> getAllDepartamentos() throws Exception {
        List<Departamento> lista = new ArrayList<Departamento>();
        ResultSet rs = null;
        try {
            rs = cConexion.conectar().createStatement().executeQuery(SQLDepartamento.DEPARTAMENTO);
            while (rs.next()) {
                Departamento d = new Departamento();
                d.setId_d(rs.getInt("id_d"));
                d.setId_p(rs.getInt("id_p"));
                d.setNombre_p(rs.getString("nombre_p"));
                d.setNombre_d(rs.getString("nombre_d"));
                lista.add(d);
            }

            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            if (rs != null) {
                rs.close();
            }
        }
    }

    public List<Departamento> getAllPaises() throws Exception {
        List<Departamento> lista = new ArrayList<Departamento>();
        ResultSet rs = null;
        try {
            rs = cConexion.conectar().createStatement().executeQuery(SQLDepartamento.ALLLista);
            String s;
            while (rs.next()) {
                Departamento p = new Departamento();
                p.setId_p(rs.getInt("id_p"));
                p.setNombre_p(rs.getString("nombre_p"));
                lista.add(p);

            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            if (rs != null) {
                rs.close();
            }
        }
    }
}
